Organizations are increasingly looking to securely identify users who access and utilize their services, both on the Internet and offline. These organizations also desire other identity-related information about these users that is stored at remote systems. These user authentication and data sharing imperatives are driven by cost and efficiency considerations, by new business models that leverage personal information, and by the explosive rise of phishing, identity theft, and other security threats. Conventional mechanisms for user authentication and data sharing, such as plastic cards and paper certificates, are costly, vulnerable to counterfeiting, and problematic for online use.
As a result, there is a rapidly growing interest in mechanisms (e.g., X.509 certificates) that can be implemented in software or hardware. However, these mechanisms are limited because they cannot be used without disclosing at least some information associated with the user. During an authentication process, when comparing a security token with a blacklist, the user must provide identity data in order to be verified. In some cases, an issuer may want to stop a particular user (i.e., Prover) from using the security token that has already been issued. For example, the Prover may be no longer qualified to use previously issued tokens or the attributes contained therein have become temporarily or permanently invalid. As another example, the user violated policies associated with a service provider.
For users whose security tokens were not revoked, proving validity cannot be accomplished without disclosing private and/or confidential information in the form of one or more encoded attributes. This is because the one or more attributes are used to generate the blacklist.